В августе прошлого года мы сделали статью о новом виде памяти Persistent memory (PMEM) в VMware vSphere, которая находится на уровне между DRAM и Flash SSD с точки зрения производительности:
Надо сказать, что устройства с Persistent Memory (они же, например, девайсы с Intel Optane Memory) уже начинают рассматривать некоторые пользователи для внедрения в своей виртуальной инфраструктуре, поэтому надо помнить об их ограничениях, которые раскрыл Дункан Эппинг.
С точки зрения предоставления памяти PMEM виртуальной машине, на платформе vSphere есть 3 способа:
vPMEMDisk - vSphere представляет PMEM как обычный диск, подключенный к виртуальной машине через контроллер SCSI. В этом случае ничего не нужно менять для гостевой ОС или приложений. В таком режиме работают любые системы, включая старые ОС и приложения.
vPMEM - vSphere представляет PMEM как устройство NVDIMM для виртуальной машины. Большинство последних версий операционных систем (например, Windows Server 2016 и CentOS 7.4) поддерживают устройства NVDIMM и могут предоставлять их приложениям как блочные или байт-адресуемые устройства. Приложения могут использовать vPMEM как устройство хранения через тонкий слой файловой системы direct-access (DAX), либо замапить регион с устройства и получать к нему прямой доступ через байтовую адресацию. Такой режим может быть использован старыми или новыми приложениями, но работающими в новых версиях ОС, при этом версия Virtual Hardware должна быть не ниже 14.
vPMEM-aware - это то же самое, что и vPMEM, но только с дополнительными возможностями приложения понимать, что машина использует такое устройство, и пользоваться его преимуществами.
Если виртуальная машина использует такие устройства, то она имеет очень существенные ограничения, которые на данный момент препятствуют их использованию в производственной среде. Они приведены в документе "vSphere Resource Management Guide" на странице 47 внизу. А именно:
vSphere HA - полностью не поддерживается для машин с включенными vPMEM устройствами, вне зависимости от режима использования.
vSphere DRS - полностью не поддерживается для машин с включенными vPMEM устройствами (машины не включаются в рекомендации и не мигрируют через vMotion), вне зависимости от режима использования.
Миграция vMotion для машин с устройствами vPMEM / vPMEM-aware доступна только на хосты с устройствами PMEM.
Миграция vMotion машин с устройством vPMEMDISK возможна на хост без устройства PMEM.
Будем надеяться, что эта ситуация в будущем изменится.
Таги: VMware, vSphere, Memory, PMEM, Intel, VMachines, HA, DRS
Компания StarWind Software известна пользователям как производитель лучшего в отрасли программного решения Virtual SAN для создания отказоустойчивых хранилищ на базе хост-серверов виртуализации VMware vSphere и Microsoft Hyper-V. StarWind иногда выпускает бесплатные утилиты для администраторов виртуальных инфраструктур, и сегодня мы поговорим об очередной новинке - StarWind iSCSI Accelerator...
Недавно мы писали об обновлении продукта для комплексного управления и мониторинга виртуальной инфраструктуры VMware vRealize Operations 7.5. Ранее для этого решения был запущен маркетплейс Dashboard Sample Exchange, где пользователи сообщества vROPs могут публиковать собственные полезные дэшборды (их уже почти 130 штук), которые помогают в ежедневных операциях по управлению платформой VMware vSphere.
Совсем недавно VMware запустила еще один маркетплейс - Super Metric Sample Exchange. В инфраструктуре vROPs суперметрики (super metrics) - это те, которые образованы путем каких-либо комбинаций обычных метрик через математическую формулу (например, какой процент CPU виртуальная машина отъедает от всего хоста ESXi). Для редактирования таких метрик используется super metric editor (подробнее тут):
Чтобы начать работу с маркетплейсом, нужно перейти на сайт vRealize и нажать кнопку View Samples:
В качестве фильтра для языка программирования выберите "vRealize Ops Super Metrics":
Еще один способ найти суперметрики - это пойти на https://code.vmware.com/samples и также выбрать там в фильтре "vRealize Ops Super Metrics":
На выходе будут сэмплы кода для суперметрик (пока их совсем немного):
Можно скачать их в формате JSON, после чего импортировать в разделе vRealize Operations > Administration > Configuration > Super Metrics:
Также вы можете добавлять и собственные суперметрики на маркетплейс. Для этого на картинке выше есть пункт "Export Selected Super Metric". Метрика также будет экспортирована в формате JSON. Для ее загрузки на маркетплейс нужно использовать портал VMware {code}, где вам потребуется завести аккаунт.
Там у вас будет кнопка "Add New Sample":
После этого запустится мастер добавления нового сэмпла, где вы можете выбрать ваш JSON:
Далее нужно добавить максимально понятное и подробное описание созданной вами суперметрики:
Вообще, это очень правильный подход, когда вендор открывает возможности для создания и обмена контентом между пользователями своего продукта. Тут VMware можно похвалить.
Недавно мы писали об утилите для тестирования производительности хранилищ HCIBench 2.0, которая помогает администраторам VMware vSphere валидировать конфигурацию кластера с точки зрения соответствия требованиям к производительности подсистемы хранения для приложений датацентра.
HCIBench используется для проведения синтетических тестов кластера хранилищ, когда нагрузка распределяется по нескольким виртуальным машинам на разных хостах ESXi. Генерация операций ввода-вывода происходит одновременно с разных ВМ согласно заранее определенному шаблону нагрузки.
А зачем вообще проводить тестирование кластера vSAN? Тут, как правило, есть следующие причины:
Понимание возможностей инфраструктуры хранения и возможность убедиться в том, что в ней нет аномалий.
Валидировать дизайн кластера vSAN с точки зрения приемо-сдаточных испытаний (User Acceptance Testing, UAT).
Получить референсные значения, с которыми можно будет сверяться при внесении существенных изменений в архитектуру vSAN.
Проведение тестов перед внедрением (PoC-проекты).
Установление базового уровня пользовательских ожиданий после развертывания приложений.
По итогу тестирования производительности хранилищ vSAN вы должны получить ответы на следующие вопросы:
Какого наибольшего числа операций ввода-вывода в секунду (IOPS) можно добиться?
Какая ожидаемая задержка выполнения операций (latency) при требуемом числе IOPS для рабочей нагрузки?
Какая максимальная пропускная способность операций чтения-записи (throughput)?
То есть результаты тестирования держатся на трех китах - IOPS, latency и throughput.
При проведении тестов нужно отключать все тормозящие технологии, такие как дедупликация и компрессия данных, а также шифрование на уровне кластера vSAN.
IOPS
Число выдаваемых IOPS зависит как от используемого оборудования для хостов и сетевых компонентов, так и от архитектуры системы. Актуальное число IOPS также зависит от уровня RAID в кластере vSAN, числа сетевых соединений между хостами, их загрузки и прочих факторов.
Обычно начинают тестирование с нескольких тредов на дисковый объект, а затем постепенно увеличивают это количество тредов, пока число выдаваемых IOPS не прекратит расти. При проведении тестирования число IOPS коррелирует с Latency, так как при увеличении одной операции ввода-вывода (размер блока операции) уменьшается число выдаваемых IOPS, а также увеличивается latency.
Latency
Обычно задержку измеряют в миллисекундах со стороны приложений, которые выполняют определенные операции. При этом, зачастую, нет каких-то референсных значений, их приходится выяснять экспериментальным путем (насколько это устраивает пользователей).
К увеличению задержек при выполнении операций приводят увеличение блока ввода-вывода, соотношение операций чтения и записи, одновременность исполнения операций ввода-вывода со стороны нескольких виртуальных машин и т.п.
Throughput
Пропускная способность важна при выполнении больших операций ввода-вывода, а также при различных паттернах чтения записи (последовательный/случайный). Чем больше размер I/O, тем очевидно больше пропускная способность. С точки зрения объема передаваемых данных одна операция I/O размером 256К равна 64 операциям ввода-вывода по 4К, но вот с точки зрения throughput это будут совершенно разные значения, так как займут разное время.
Методология тестирования хорошо описана в документации по HCIBench, а также вот в этой статье на русском языке. Работа с утилитой начинается по ссылке https://<HCIBench IP address>:8443.
Перед началом тестирования можно задать параметры среды - число виртуальных машин для кластера, количество их виртуальных дисков и их размер. Для ленивых есть параметр Easy Run, который позволит автоматически подобрать эту конфигурацию, исходя из размера кластера vSAN и параметров хостов ESXi:
Очень важно при тестировании также задать правильный профиль рабочей нагрузки (4 варианта на картинке выше).
После выполнения теста Easy Run вы получите выходной файл с результатами вроде vdb-8vmdk-100ws-4k-70rdpct-100randompct-4threads-xxxxxxxxxx-res.txt. Из имени файла можно понять использованную тестовую конфигурацию (она также будет в самом файле):
Также в папке с результатами тестирования будет подпапка с отдельными файлами, где хранятся результаты самих тестов:
Если открыть один их этих файлов, мы увидим детальные параметры производительности различных компонентов среды vSAN:
Полученные параметры можно считать базовым уровнем для тестирования производительности кластера. Теперь нужно увеличивать параллелизм, то есть число тредов Outstanding I/O (OIO), для выжимки оптимальной производительности. Увеличение этого параметра будет увеличивать число IOPS, а также, как следствие, будет расти Latency. Так вы сможете понять, как инфраструктура хранения ведет себя в динамике, реагируя на изменение профиля нагрузки.
Чтобы изменить параметр OIO, нужно отключить Easy Run и в профиле рабочей нагрузки нажать Add:
Также для измерения пропускной способности вы можете поэкспериментировать с размером операции ввода-вывода. Современные ОС поддерживают размер I/O в диапазоне 32K - 1 MB, но для тестирования лучше использовать I/O в диапазоне 32K – 256K.
Еще какие моменты надо учитывать при тестировании:
Синтетическое тестирование не учитывает, что профиль рабочей нагрузки в кластере в реальной жизни постоянно изменяется точки зрения соотношения операций чтения и записи и их рандомизации в потоке ввода-вывода. Используемая модель - всего лишь аппроксимация.
Тесты ориентированы на отслеживание характеристик хранилищ, а не загрузки CPU и памяти хостов ESXi.
Некоторое время назад мы писали о новых возможностях недавно вышедшего обновления платформы виртуализации VMware vSphere Platinum 6.7 Update 2. Cреди новых возможностей гипервизора там есть фича "Новые возможности планировщика CPU помогают бороться с уязвимостями типа L1TF".
Оказывается, это довольно серьезное улучшение. Надо сказать, что планировщик гипервизора side-channel aware scheduler (SCA) появился еще в прошлой версии платформы. Он закрывал уязвимость L1TF (L1 Terminal Fault) в процессорах Intel за счет того, что процессы виртуальных машин запускались только в одном треде одного физического ядра. Это позволяло нивелировать вектор атаки данного типа, но приводило к существенному снижению производительности.
Особенно это чувствовалось, когда сервер ESXi был загружен по CPU полностью, и SCA первой версии в этом случае давал до 30% хуже результат, чем без него. Если же сервер был загружен, например, на 75%, то в производительность оставалась примерно той же, но без SCA нагрузка на CPU была существенно ниже.
Итак, начиная с VMware vSphere 6.7 Update 2, появился обновленный планировщик SCAv2, который был существенно доработан по сравнению со своей предыдущей версией. Он позволяет исполнять контексты vCPU одной машины в разных гипертредах одного физического ядра процессора хоста. В этом случае атаке L1TF не подвержены взаимодействия типа VM/VM и VM/ESXi (чувствительная информация между ними не шарится в общем кэше).
В документе описано 2 типа тестов, которые проводились для планировщиков SCAv1 и SCAv2: работа хоста под максимальной нагрузкой по процессорам и под нагрузкой на уровне 75% от максимальной мощности всех CPU хоста ESXi (reduced load). В качестве базового уровня использовался планировщик без SCA (он же на картинке ниже обозначен как Default):
Если верить графикам, отражающим результаты тестирования различными бенчмарками, то планировщик SCAv2 работает существенно лучше во всех случаях, кроме очень большой (по выделенным ресурсам) виртуальной машины - Monster VM с базой Oracle и 192 vCPU, но такой кейс в реальной жизни случается весьма редко. Так что, в целом, улучшения были проведены весьма существенные (как минимум, на 11% планировщик стал более производительным по результатам тестов).
Помимо документа выше, информация об улучшениях планировщика приведена еще в KB 55806.
Мы много пишем о решении для организации отказоустойчивых хранилищ на базе хостов ESXi - платформе VMware vSAN. Сегодня мы расскажем о дисковых группах на основе вот этого поста на блогах VMware.
Архитектура vSAN включает в себя два яруса - кэш (cache tier) и пространство постоянного хранения (capacity tier). Такая структура дает возможность достичь максимальной производительности по вводу-выводу, которая абсолютно необходима в кластере хранилищ на базе хостов.
Чтобы управлять отношениями устройств кэша и дисков хранения, решение vSAN использует дисковые группы:
У дисковых групп есть следующие особенности:
Каждый хост, который дает емкость кластеру vSAN, должен содержать как минимум одну дисковую группу.
Дисковая группа содержит как минимум одно устройство для кэша и от 1 до 7 устройств хранения.
Каждый хост ESXi в кластере vSAN может иметь до 5 групп, а каждая группа - до 7 устройств хранения. То есть на хосте может быть до 35 устройств хранения, чего вполне достаточно для подавляющего большинства вариантов использования.
Неважно, используете ли вы гибридную конфигурацию (SSD и HDD диски) или All-Flash, устройство кэширования должно быть Flash-устройством.
В гибридной конфигурации устройства кэша на 70% используются как кэш на чтение (read cache) и на 30% как кэш на запись (write buffer).
В конфигурации All-Flash 100% устройства кэша выделено под write buffer.
Write buffer и capacity tier
В принципе, всем понятно, что гибридная конфигурация хостов ESXi в кластере vSAN более дешевая (HDD стоит меньше SSD), но менее производительная, чем All-Flash. Но когда-то наступит время, и все будет All-Flash (в них, кстати, еще и нет нужды организовывать кэш на чтение, так как все читается с SSD с той же скоростью). Поэтому и выделяется 100% под write buffer.
При этом если операция чтения в All-Flash хосте находит блок в кэше - то он читается именно оттуда, чтобы не искать его в capacity tier. Максимальный размер write buffer на одной дисковой группе хоста ESXi - 600 ГБ. При этом если сам диск более 600 ГБ, то его емкость будет использоваться с пользой (см. комментарий к этой статье).
Для гибридных конфигураций 70% емкости кэша выделяется под кэш на чтение, чтобы быстро получать данные с производительных SSD-устройств, при этом vSAN старается поддерживать коэффициент попадания в кэш на чтение (cache hit rate) на уровне 90%.
Write buffer (он же write-back buffer) подтверждает запись на устройство хранения еще до актуальной записи блоков на сapacity tier. Такой подход дает время и возможность организовать операции записи наиболее эффективно и записать их на сapacity tier уже пачкой и более эффективно. Это дает существенный выигрыш в производительности.
SSD-устройства бывают разных классов, в зависимости от их выносливости (среднее число операций записи до его отказа). Все понятно, что для кэширования нужно использовать устройства высоких классов (они дорогие), так как перезапись там идет постоянно, а для хранения - можно использовать недорогие SSD-диски.
Вот сравнительная таблица этих классов (колонка TBW - это terabytes written, то есть перезапись скольких ТБ они переживут):
vSAN содержит в себе несколько алгоритмов, которые учитывают, как часто write buffer сбрасывает данные на сapacity tier. Они учитывают такие параметры, как емкость устройств, их близость к кэшу по времени записи, число входящих операций ввода-вывода, очереди, использование дискового устройства и прочее.
Организация дисковых групп
При планировании хостов ESXi в кластере vSAN можно делать на нем одну или более дисковых групп. Несколько дисковых групп использовать предпочтительнее. Давайте рассмотрим пример:
Одна дисковая группа с одним кэшем и 6 устройств хранения в ней.
Две дисковых группы с двумя устройствами кэша, в каждой по 3 устройства хранения.
Если в первом случае ломается SSD-устройство кэша, то в офлайн уходит вся дисковая группа из 6 дисков, а во втором случае поломка одного девайса приведет к выходу из строя только трех дисков.
Надо понимать, что этот кейс не имеет прямого отношения к доступности данных виртуальных машин, которая определяется политикой FTT (Failures to tolerate) - о ней мы подробно рассказывали тут, а также политиками хранилищ SPBM. Между тем, размер домена отказа (failure domain) во втором случае меньше, а значит и создает меньше рисков для функционирования кластера. Также восстановление и ребилд данных на три диска займет в два раза меньше времени, чем на шесть.
Кстати, некоторые думают, что в случае отказа дисковой группы, кластер vSAN будет ждать 60 минут (настройка Object Repair Timer) до начала восстановления данных на другие диски согласно политике FTT (ребилд), но это неверно. Если вы посмотрите наш пост тут, то поймете, что 60 минут vSAN ждет в случае APD (All Paths Down - например, временное выпадение из сети), а вот в случае PDL (Physical Device Loss) восстановление данных на другие дисковые группы начнется немедленно.
С точки зрения производительности, иметь 2 дисковые группы также выгоднее, чем одну, особенно если разнести их по разным контроллерам хранилищ (storage controllers). Ну и это более гибко в обслуживании и размещении данных на физических устройствах (например, замена диска во втором примере пройдет быстрее).
Работа операций ввода-вывода (I/O)
Как уже было сказано, в гибридной конфигурации есть кэши на чтение и на запись, а в All-Flash - только на запись:
При этом хост ESXi работает так, чтобы операции чтения с дисков попадали в кэш на чтение в 90% случаев. Остальные 10% операций чтения затрагивают HDD-диски и вытаскивают блоки с них. Но и тут применяются оптимизации - например, одновременно с вытаскиванием запрошенного блока, vSAN подтягивает в кэш еще 1 МБ данных вокруг него, чтобы последовательное чтение проходило быстрее.
Для All-Flash конфигурации кэш на чтение не нужен - все данные вытаскиваются с примерно одинаковой скоростью, зато все 100% кэша используются под write buffer, что дает преимущество в скорости обработки большого входящего потока операций ввода-вывода.
Ну и напоследок отметим, что vSAN при записи на флэш-диски распределяет операции записи равномерно между ячейками независимо от размера диска. Это позволяет диску изнашиваться равномерно и иметь бОльшую наработку на отказ.
Надо понимать, что важно не только настроить серверы SQL, но и саму среду vSAN, в зависимости от характера ваших нагрузок (какие-то базы данных требуют высокой производительности, какие-то большой дисковой емкости и т.п.).
Давайте посмотрим, что это за базовые рекомендации:
1. Общие рекомендации.
Включайте дополнительный хост ESXi к результатам сайзинга по схеме n+1 на случай отказа диска, дисковой группы или всего хоста в целом.
Имейте хороший запас по пропускной способности сети для трафика vSAN, рекомендуется использовать 10G сеть с выделенной полосой для трафика синхронизации. Для All-Flash vSAN это обязательное требование. И не забывайте о резервировании каналов.
Имейте как минимум 2 дисковых группы на хост - это может увеличить полосу пропускания во многих случаях, а также обеспечивает лучшую отказоустойчивость.
Службы vSAN на уровне кластера:
vSAN Performance service (включен по умолчанию в vSAN 6.7) предоставляет метрики производительности в сторонние системы, такие как vRealize Operations, что позволяет эффективно мониторить и решать проблемы.
Вы можете использовать шифрование data at rest (FIPS 140-2 compliant), это не влияет на производительность по IOPS, но дает нагрузку на CPU, поэтому лучше использовать процессоры с поддержкой возможности AES-NI. Для end-to-end шифрования используйте туннели IPSEC. Если нужно зашифровать только отдельную БД, используйте SQL Server native encryption.
vSAN 6.7 поддерживает SCSI-3 persistent reservations для общих дисков при использовании SQL Server FCI. Для этого на уровне кластера надо включить службу vSAN iSCSI Target.
Настройте политики SPBM для данных SQL Server:
Политика Failures to tolerate (FTT): убедитесь, что выставлено как минимум значение 1, не используйте опцию "No data redundancy".
Политика Number of disk stripes per object: используйте значение по умолчанию (1) и подумайте о разделении данных между разными дисками VMDK, привязанными к разным контроллерам vSCSI.
Политика IOPS limit per object: vSAN 6.2 и более поздние версии имеют возможности QoS, которые могут ограничить IOPS, потребляемые дисковым объектам. Не используйте эту политику для задач, требовательных к нагрузкам. Эта фича используется, как правило, для операций резервного копирования и восстановления, чтобы предотвратить забитие полосы пропускания этими задачами.
2. Рекомендации для нагрузок Tier-1 (высоконагруженные OLTP-базы).
Как правило, такие нагрузки по вводу-выводу включают запросы с множественным позиционированием точек записи в базе данных, активность по сбросу грязных страниц кэша на диск, а также запись транзакционного лога. Размер операции ввода-вывода небольшой - в диапазоне 8K - 64K. Можно использовать бенчмарки TPC-E для воспроизведения паттернов OLTP-подобных нагрузок.
Рассмотрите возможность использования All-flash vSAN.
Используйте как минимум диски SAS SSD (а не SATA SSD) - у них больше глубина очереди. Также подумайте о технологии NVMe.
Отключайте дедупликацию и компрессию данных, которые включены в vSAN по умолчанию. Лучше использовать компрессию таблиц на уровне базы данных.
Для object space reservation установите "Thick provisioning" для всех VMDK с данными SQL Server и логами. Это позволит не натолкнуться на проблему нехватки места при использовании тонких дисков. Также в опциях SQL Server лучше установить настройку Perform maintenance tasks, чтобы инициализировать файлы с данными сразу же. Также выделите сразу место под лог БД, чтобы не натолкнуться на недостаток места в гостевой ОС, либо установите настройку его роста в ГБ, а не в процентах.
Не используйте IOPS limit for object.
Используйте RAID-1 mirroring и как минимум FTT=1 для для VMDK-дисков с данными и логом.
Если вы используете дополнительные методы отказоустойчивости, такие как Always On Availability Groups, то вам может потребоваться увеличить FTT. Делайте это не только с точки зрения доступности, но и с точки зрения производительности. Вы можете комбинировать отказоустойчивость Availability Groups на уровне приложения с отказоустойчивостью на уровне дисковой подсистемы.
Если вам требуется доступность SQL между площадками, можно использовать архитектуру растянутых кластеров (vSAN Stretched Cluster).
Подумайте о коммутаторах для трафика vSAN. Оптимально использовать кластеры all-NVMe vSAN, тогда операции ввода вывода будут быстро передаваться между дисковыми устройствами без участия физических контроллеров. Также лучше использовать 10G-коммутаторы Enterprise-уровня с большими размерами буфера (non-shared), чтобы обеспечить работу с плотным потоком ввода-вывода.
2. Рекомендации для нагрузок Tier-2 (высоконагруженные OLTP-базы).
Это нагрузки от которых не требуется экстремальной производительности, поэтому они должны быть эффективными с точки зрения стоимости. Тут актуальны следующие рекомендации:
Для гибридной среды vSAN (микс HDD+SSD) рекомендуется следующее:
Используйте несколько дисковых групп для увеличения пропускной способности.
Имейте как минимум 10% от емкости данных для пространства кэширования на SSD. Также рекомендуется использовать объем SSD-емкости как минимум в два раза больший, чем рабочий набор данных (working data set).
Используйте, по возможности, устройства SAS SSD вместо SATA SSD.
Если вы используете конфигурацию All-flash vSAN, то:
Используйте дедупликацию и компрессию, если у приложений нет высоких требований по операциям записи.
Если хотите экономить место и не требуется большой производительности, то используйте конфигурацию RAID 5/6 erasure coding, но для транзакционных логов используйте VMDK-диски, размещенные на RAID 1.
Для object space reservation установите "Thick provisioning" для всех VMDK с данными SQL Server и логами.
3. Нагрузки типа Data Warehouse и серверов отчетов (Reporting).
Для таких нагрузок характерен большой размер операции ввода-вывода, так как происходит запрос большого объема данных из БД. Критичной метрикой здесь является не IOPS, а пропускная способность (MB/s). Для генерации таких нагрузок могут быть использованы бенчмарки TPC-H.
Тут приводятся следующие рекомендации:
Для конфигураций All-flash лучше использовать NVMe SSD для хранилищ данных, это даст хорошую производительность по большим операциям чтения.
Для конфигураций All-flash в целях экономии места используйте RAID 5/6 для VMDK с данными БД.
Преаллоцируйте пространство для логов SQL Server, чтобы не натолкнуться на проблему нехватки места.
Не используйте IOPS limit for object, это может ограничить полосу пропускания.
Лучше использовать 10G-коммутаторы Enterprise-уровня с большими размерами буфера (non-shared), чтобы обеспечить работу с плотным потоком ввода-вывода и выдать хорошую пропускную способность.
Это решение является продолжением уже объявленной VMware в июле прошлого года интеграции с облаком Google средствами плагина Google Cloud plug-in for VMware vRealize Orchestrator (vRO). vRO представляет собой встроенный движок vRealize Automation для оркестрации рабочих процессов в облаке, соответственно, плагин для vRealize Automation позволяет настроить управление рабочими процессами в облаке Google Cloud в дополнение к уже имеющимся процедурам автоматизации в онпремизной инфраструктуре.
С момента превью плагина для vRO команда Google Cloud добавила следующие новые возможности и улучшения в плагин:
Поддержка новых сервисов: Google Kubernetes Engine, Cloud SQL, Cloud Spanner, Cloud Pub/Sub, Cloud Key Management Service, Cloud Filestore (Beta), IAM Service Accounts.
Улучшенные рабочие процессы для работы с облачными ВМ: установка пароля Windows, исполнение SSH-команд, запрос вывода последовательного порта, восстановление из снапшота и другое.
Также для функций плагина к vRO были сделаны следующие улучшения:
Поддержка настройки http-прокси при создании соединения.
Рабочие процессы для упрощения импорта ресурсов XaaS Custom Resources и описаний архитектуры Blueprints в инфраструктуру vRealize Automation.
Дефолтные опции для рабочего процесса по созданию ВМ.
Просмотр оценочной стоимости платы за ВМ в месяц.
Рабочий процесс для сбора ошибок и написания письма в поддержку.
Улучшенная обработка синхронизации соединений для кластеров vRO.
Премиальная поддержка для функций Health Check.
Доработанная пользовательская документация и шаблоны сценариев vRO.
Обзор функций плагина Google Cloud Plug-in for VMware vRealize Automation представлен в видео ниже:
Часто администраторы виртуальной инфраструктуры VMware vSphere и отказоустойчивых кластеров VMware vSAN задаются вопросом, а как найти тот или иной диск vSAN в физическом сервере?
Иногда такую информацию можно получить с помощью следующей команды:
esxcli storage core device physical get -d <device id>
Вывод будет выглядеть следующим образом:
Исполнять эту команду для каждого из дисков достаточно проблематично, особенно учитывая, что нужно еще предварительно получить id устройства.
Также эту информацию можно посмотреть в разделе Cluster > Configure > vSAN > Disk Management, выбрав режим показа дисков "By Disk Vendors":
Но это тоже неудобно, хотелось бы такую информацию получать через PowerCLI. Информацию о дисковых устройствах можно получить с помощью командлета Get-ScsiLun, который выдает адаптер, к которому подключен диск, а также является ли он SSD-устройством, подходит ли для vSAN и другое. Но, к сожалению, он не дает данных об enclosure для этого диска, поэтому дополнительно нужно воспользоваться командлетом Get-EsxCli, который добавит эту информацию.
Таким образом, VMware предлагает использовать вот такой сценарий PowerCLI, который выведет информацию о физических устройствах, их нахождении в enclosure и слоте, а также типе дисков и их емкости:
Сам сценарий доступен по этой ссылке: https://code.vmware.com/samples/5539 (кстати, обратите внимание, что на портале VMware Code можно найти еще много чего интересного).
Интересный проект доступен на GitHub - набор скриптов vDocumentation, который позволяет через PowerCLI сгенерировать отчетность в форматах CSV или XLS, посвященную различным сторонам виртуальной инфраструктуры (сеть, хосты, кластеры vSAN и т.п.). Демо этого средства было представлено на VMworld 2017:
Проект vDocumentation на текущий момент содержит 8 сценариев, каждый из который позволяет подготовить соответствующий отчет:
Get-ESXInventory - генерация всех аппаратных параметров хостов ESXi и их конфигураций.
Get-ESXIODevice - документирование конфигурации карт HBA, NIC и других PCIe-устройств, включая PCI ID, MAC, версии микрокода и драйверов.
Get-ESXNetworking - конфигурация сетевого окружения, включая детали сетевых адаптеров, коммутаторов vSwitches, параметры VMKernel и прочее.
Get-ESXStorage - параметры инфраструктуры хранилищ, включая детали iSCSI, FibreChannel, параметры датасторов и механизма доступа по нескольким путям (Multipathing).
Get-ESXPatching - информация об установленных обновлениях, времени их выхода и ссылки на соответствующие статьи KB.
Get-vSANInfo - документирование кластеров vSAN.
Get-ESXSpeculativeExecution - статус серверов ESXi в отношении уязвимостей Spectre и Meltdown.
Get-VMSpeculativeExecution - статус виртуальных машин в отношении уязвимостей Spectre и Meltdown.
Например, вот отчет о статусе хостов ESXi в отношении уязвимостей Spectre и Meltdown:
По умолчанию данные выводятся в терминал, но можно их перенаправить с CSV или XLS файлы.
Загрузить сценарии vDocumentation можно по этой ссылке.
Компания VMware недавно выпустила интересный постер, посвященный облачной IaaS-инфраструктуре, предоставляемой в партнерстве с Amazon - VMware Cloud on AWS - Quick Reference.
Постер дает информацию о различных типах соединений, которые доступны в облаке VMConAWS:
Плакат разделен на 5 секций, заголовки у которых кликабельны - по ссылкам находится детальная информация по соответствующей теме (кроме секции Firewall Rules, где кликабельны подзаголовки).
Содержимое разделов:
Infrastructure Overview - высокоуровневая диаграмма, показывающая отношения между онпремизным датацентром, инфраструктурой VMware Cloud on AWS SDDC и нативными сервисами AWS.
HCX Enterprise Network - детальная диаграмма, раскрывающая суть компонентов HCX, соединения, потоки и порты, используемые между онпремизным датацентром и облаком VMware Cloud on AWS.
Direct Connect Topology - эта секция показывает компоненты и общую топологию использования технологии AWS Direct Connect (DX) для организации соединения между онпремизным датацентром и облаком VMware Cloud on AWS.
NSX-T AWS Connected VPC - эта диаграмма показывает, каким образом организуется коммуникация между виртуальным частным облаком VMware Cloud on AWS VPC (Virtual Private Cloud) и пользовательским соединением VPC, в случае если используются родные сервисы AWS.
Firewall Rules - последняя секция включает список самых часто используемых правил сетевого экрана, используемых между онпремизным датацентром и облаком VMware Cloud on AWS для компонентов Management Gateway, HCX и Site Recovery.
Постер VMware Cloud on AWS - Quick Reference доступен по этой короткой ссылке. Напомним также, что все постеры VMware находятся здесь.
Осенью 2017 года мы писали о релизе операционной системы VMware Photon OS 2.0, предназначенной для контейнеров Docker, cloud-native приложений, публичных облачных платформ и инфраструктуры VMware (виртуальные модули).
Оказывается, как справедливо отметили в комментариях, в конце февраля этого года было выпущено обновление VMware Photon OS 3.0. Давайте посмотрим, что там нового:
1. Поддержка архитектуры ARM64.
Теперь Photon OS 3.0 можно запускать на Raspberry Pi 3. Для этого есть предсобранный образ, а также возможность собирать новые образы с помощью image builder.
2. Улучшения установки.
Теперь инсталлятор можно запускать с различных носителей, таких как USB, CDROM и средств kickstart с любого из поддерживаемых устройств хранения.
Driver Development Kit - возможность интегрировать свои кастомные драйверы.
3. Прочие улучшения.
Предсобранные образы для развертывания на облачных платформах Microsoft Azure, Google Compute Engine (GCE), Amazon Elastic Compute Cloud (EC2) и VMware (vSphere, Fusion и Workstation).
Новые версии следующих базовых пакетов ОС:
Linux kernel 4.19
Glibc 2.28
systemd 239
Python3 3.7
Openjdk : 1.8.0.192
Обновление большинства пакетов, доступных из репозитория (около 440 пакетов были обновлены).
Возможность одновременной поддержки пакетов разных версий (например, go-1.9 и go-1.10).
Новые пакеты: EdgeX, Liota, linux-firmware, wpa_supplicant for WLAN, consul, meson и другие.
Также в Photon OS 3.0 теперь доступно 3 размера установки ОС:
Minimal - для IoT-устройств с самыми минимальными базовыми требованиями.
Developer - пакеты для создания, тестирования и развертывания контейнеризованных приложений.
Edge - включает пакеты для создания устройства edge gateway.
Скачать VMware Photon OS 3.0 можно по этой ссылке. Там же доступна и документация.
Таги: VMware, Photon OS, Update, Linux, Open Source, Virtual Appliance
Мы часто писали о решении VMware vRealize Network Insight (vRNI), которое позволяет системным и сетевым администраторам, а также администраторам информационной безопасности, смотреть за сетевым взаимодействием в рамках виртуальной инфраструктуры и предпринимать действия по ее защите.
Также с помощью vRNI можно найти 3 типа отклонений для виртуальных машин, работающих непрерывно в виртуальной инфраструктуре:
Outliers - девианты по трафику в рамках группы ВМ по сравнению с остальными членами группы.
Thresholds - машины, которые превысили пороговые значения по трафику или сбросу пакетов.
Top Talkers - самые потребляющие сетевые ресурсы машины в каком-то аспекте мониторинга.
Сегодня мы рассмотрим ситуацию, когда с помощью vRNI можно обнаружить девиантов по трафику (Outliers) в группе виртуальных машин, выполняющих одинаковую функцию. К таким машинам можно отнести, например, веб-серверы, размещенные за балансировщиком и принимающие на себя в среднем одинаковую нагрузку.
Если один из серверов начинает существенно отклоняться (например, отдавать трафика намного больше чем остальные), то это может говорить либо об ошибке в конфигурации балансировщика, либо о каких-то проблемах на этом веб-сервере. Также к таким сервисам можно отнести серверы DNS, Active Directory, кластеры серверов SQL и другие масштабируемые сервисы.
Помимо получения нотификаций о девиантах по SNMP или email, их поведение можно визуализовать на графиках. Это позволит вам сразу понять, какой из серверов ведет себя не как остальные, чтобы сразу приступить в выяснению источника проблемы:
Здесь мы видим, что виртуальная машина cmbu-sc2dc-01 на порту 53 имеет большой поток трафика, гораздо больше, чем остальные, поэтому и попала в категорию "Outliers" на панели справа.
Для мониторинга такого поведения вы можете выбрать один или несколько портов, а также направление трафика (входящий/исходящий), так как есть сервисы, которые в основном принимают данные (например, обработчики), а есть, которые преимущественно отдают (веб-серверы, DNS и т.п.).
Чтобы создать группу Outliers для мониторинга, нужно в консоли vRNI пойти в меню Analytics и там открыть раздел Outliers:
Далее вы увидите список всех настроенных групп Outliers. Там вы увидите, сколько девиантов в каждой группе было обнаружено, какие связанные с ними события произошли, а также информацию о группе (сколько ВМ, их IP и т.п.), также вы увидите, когда были обнаружены эти отклонения.
Для создания новой группы, в правом верхнем углу надо нажать ADD и установить все необходимые настройки:
Здесь они означают следующее:
Имя группы.
Масштаб наблюдения (application tier, NSX Security tag и т.п.).
Для уровня приложения (application tier) нужно выбрать само приложение и его ярус (tier).
Метрика - total traffic (MB, GB и т.п.), число пакетов или сессий, либо объем трафика в секунду.
Направление обнаруживаемого трафика (incoming, outgoing, both).
Направление трафика в датацентре: north-south (интернет-трафик), east-west (внутренний трафик датацентра), либо оба направления.
Порты назначения - можно мониторить все используемые порты, либо выбранные. Но пока есть лимит 20 портов, если он будет превышен, то их надо будет вводить вручную.
Когда все установлено, vRNI сгенерирует превьюшку результатов на графике, включающем в себя настроенные сетевые потоки.
Если превью вас устроило, то просто нажимаете Submit и добавляете новую группу в систему мониторинга.
Как только обнаруживается Outlier, для него создается открытое событие (Event), оно продолжает висеть в открытых, пока отклонение продолжает существовать. Как только все возвращается в норму, событие закрывается, однако остается в архиве, чтобы администратор знал о происходящем.
В общем, vRNI, хотя бы только с этой стороны - полезная штука!
Очень дельную статью написал Вильям Лам, касающуюся настройки алармов для различных событий в инфраструктуре VMware vSphere. Иногда системному администратору требуется настроить мониторинг каких-либо действий пользователей, которые вызывают генерацию событий в консоли vSphere Client.
Например, вы хотите получать аларм, когда пользователь создает папку (Folder) для виртуального окружения через vSphere Client. Для начала нам понадобится информация, которую мы будем использовать в описании аларма. Для этого мы делаем действие, генерирующее событие, вручную (в данном случае, создаем папку), а после этого идем в раздел Monitor->Tasks, где смотрим описание задачи и связанного с ней события:
Главное здесь для нас - это лейбл "Task: Create folder", по которому мы найдем этот тип событий через PowerCLI, а точнее его Description Id. Открываем консоль PowerCLI и выполняем там вот такую команду, указав лейбл нашего события, найденный в консоли vSphere Client:
Результатом будет Description Id нашего события - это Folder.createFolder:
Далее можно создавать аларм, зная Description Id события. Выбираем тип условия Task event, а также описание в виде Description Id, тип условия end with и сам этот ID - Folder.createFolder:
После создания такого аларма, при каждом создании папки он будет срабатывать, что можно увидеть в разделе Triggered Alarms:
Таким же образом вы можете настроить алармы и для любых других событий, происходящих в инфраструктуре VMware vSphere.
Политика ограничения виртуальных машин по операциям ввода-вывода (IOPS limits storage policy rule) позволяет ограничить виртуальную машину в кластере VMware vSAN в плане потребления ресурсов хранилища. Она применяется для VMDK дисков машин и, как правило, используется в ситуациях, когда нужно изолировать "прожорливого соседа" - то есть виртуальную машину, которая может начать потреблять несоразмерно много ресурсов хранилища по вводу-выводу на хосте ESXi, вызывая большие задержки (latency) у других машин этого хоста. При этом такая машина на данном хосте может быть далеко не самой важной.
Ограничение машины по IOPS имеет некоторые особенности. Размер операции ввода-вывода может варьироваться в диапазоне от 4 КБ до 1 МБ. Это означает, что самая большая операция может быть в 256 больше по объему самой маленькой. Поэтому при применении ограничения по IOPS решение vSAN использует так называемые "взвешенные IOPS", определяемые квантами по 32 КБ (об этом мы писали вот тут). При размере операции до 32 КБ планировщик vSAN считает ее как одну операцию, 32-64 КБ - как две, и так далее.
Это позволяет при визуализации метрик производительности нормализовать поток данных к хранилищу и управлять им при импорте настроек из механизма SIOC, который применяется к виртуальным машинам не в кластере vSAN. Надо отметить, что vSAN имеет собственную механику регуляции I/O и собственный планировщик, поэтому механизм SIOC не применяется к таким хранилищам.
Соответственно, давайте взглянем на графики операций ввода-вывода на вкладке Monitor->vSAN->Performance:
На нижнем графике (Virtual SCSI IOPS) мы видим число реальных операций ввода-вывода, независимо от их размера, а на верхнем - уже нормализованные IOPS и лимиты, применяемые к ВМ.
IOPS limit применяется только ко всему потоку ввода-вывода гостевой ОС машины (то есть ярус хранения, ярус кэширования), но не затрагивает операции с самим диском VMDK и его swap-файлами, например, репликация машины, SVmotion (миграция хранилища), XVmotion (миграция машин без общего хранилища) и клонирование ВМ.
Если машина достигает лимита по IOPS, планировщик vSAN для нее начинает откладывать операции ввода-вывода до завершения транзакции таким образом, чтобы они не превышали заданного лимита по нормализованному числу операций в секунду. Это все приводит к тому, что задержки исполнения данных операций (latency) существенно возрастают, что видно на графике Virtual SCSI Latency:
Здесь мы видим, что при достижении лимита 200 IOPS latency возросла до 580 мс, а при достижении 400 мс - где-то до 230-290 мс. Эти задержки, возникающие на уровне виртуальной машины, проявляют себя также и на уровне всего хоста, кластера и даже приложений, таких как vRealize Operations.
Этот важный фактор надо учитывать, когда вы ищете причину высокой latency, потому что механизм vSAN Performance Service не делает различий, возникли ли задержки из-за проблем с производительностью, или они являются результатом применения IOPS limits.
Интересно также, что применение IOPS limits storage policy rule к одной виртуальной машине может повлиять и на другую ВМ, к которой не применяется этого правила. Например, вы копируете файлы одной ВМ на вторую (и обратно), у которой есть IOPS limit. При достижении этого лимита, очевидно, происходит уменьшение числа IOPS не только у целевой ВМ, но и у источника, так как происходит уменьшение совокупного числа операций ввода-вывода на передачу файлов.
При этом у исходной ВМ в этом случае не будет существенного изменения latency, так как ее операции откладываться не будут (посмотрите на левый и правый графики этой ВМ):
К сожалению, описанные эффекты влияния на производительность ВМ не всегда просто идентифицировать, поэтому нужно всегда осторожно выставлять IOPS limit и всегда четко его документировать в описании конфигурации виртуальной инфраструктуры.
На днях компания VMware выпустила первое в этом году обновление своего фреймворка для управления виртуальной инфраструктурой PowerCLI 11.2.0. Напомним, что о прошлом обновлении - PowerCLI 11.1 - мы писали вот тут.
Давайте посмотрим, что нового появилось в обновлении PowerCLI 11.2:
Новый модуль для VMware HCX.
Решение VMware HCX - это набор утилит для управления гибридной средой, состоящей из ресурсов облака и онпремизной инфраструктуры. С помощью нового модуля для HCX вы можете выполнять миграции vMotion (в том числе, в пакетном режиме), включая очень большие ВМ, поддерживать жизненный цикл ВМ, а также защищать данные в целях катастрофоустойчивости, дублирование которых происходит на уровне площадок.
Всего здесь было добавлено 20 командлетов, решающих подобные проблемы. Более подробно о них можно почитать вот тут.
Добавлена поддержка служб NSX-T Policy services.
Решение NSX-T позволяет абстрагировать управление сетями и безопасностью сетевой инфраструктуры датацентра с помощью политик. Также NSX-T применяется для обеспечения доступности сервисов.
За счет нового командлета Get-NsxtPolicyService теперь можно автоматизировать большинство операций по управлению политиками, используя стандартный API. Командлет совместим с недавно анонсированной новой версией решения NSX-T 2.4.
Добавлена поддержка служб OAuth для соединения с vCenter.
В плане поддержки инфраструктуры безопасности VMware Cloud on AWS, в новой версии PowerCLI был существенно доработан механизм аутентификации. Теперь появилось 2 новых командлета для аутентификации и обновился существующий командлет для поддержки механизма OAuth2.
Для облачного модуля VMC появился специальный командлет New-VcsOAuthSecurityContext, который позволяет использовать контекст безопасности сессии работы пользователя на базе токена VMware Cloud on AWS
Для модуля Core появился командлет New-VISamlSecurityContext, который позволяет получить и использовать контекст безопасности OAuth и транслировать его в контекст SAML2, который уже используется для соединения с vCenter (Connect-VIServer) и прочего.
На данный момент эта функциональность работает только в GovCloud
для правительственного облака.
Поддержка Opaque Networks (сетей виртуальной инфраструктуры, которые управляются извне решения vSphere, например, OpenStack).
С помощью командлетов Set-NetworkAdapter и Import-VApp можно организовать поддержку сетей Opaque Networks. Более подробно об этом можно почитать в статье Configuring VMs For Opaque Networks.
Обновленные командлеты модуля
Storage.
Командлет Get-VsanSpaceUsage теперь имеет новый параметр, который позволяет возвращать результаты по определенной политике хранилищ.
Также в командлет добавили несколько параметров от командлета Set-VsanClusterConfiguration (CustomizedSwapObjectEnabled, GuestTrimUnmap, LargeClusterSupported, ObjectRepairTimerMinutes и SiteReadLocalityEnabled). Обновился и командлет Test-VsanNetworkPerformance, который теперь имеет параметр DurationInSecond (с помощью него можно регулировать время тестирования производительности хранилища).
Посмотреть историю изменений VMware PowerCLI 11.2.0 можно по этой ссылке. Документация доступна тут. Если вы что-то забыли, то всегда можно воспользоваться справочником по PowerCLI - VMware PowerCLI 11.2.0 Cmdlet Reference.
Напомним, что обновить актуальную версию PowerCLI на обновление версии 11.2, можно использовать команду:
На сайте проекта VMware Labs появилось обновление полезной штуки для администраторов больших виртуальных инфраструктур - PowerCLI Preview for NSX-T. Напомним, что мы писали об этом решении вот тут. Оно предоставляет интерфейс PowerCLI/PowerShell к управлению решением для сетевой виртуализации NSX-T с помощью сценариев. Кстати, пользуясь случаем, рекомендуем вам статью нашего автора Романа Гельмана "Как управлять ролями NSX-менеджера при помощи PowerNSX".
Надо отметить, что это все еще Community Preview версия пакета команд, которая скоро будет добавлена в состав экосистемы PowerCLI, но на данный момент ее рекомендуется использовать только в тестовых целях.
Кстати, авторы отмечают, что получение дочернего объекта на основе всего родительского пока не работает, вместо этого рекомендуют использовать ID родителя (например, для команды Get-FirewallRule нужно использовать -SectionId и указать родительскую секцию вместо передачи родителя целиком в параметр -FirewallSection).
Для работы необходим PowerCLI 10.0.0 или более поздней версии.
На сайте VMware появился полезнейший технический документ, даже практически книга об использовании фреймворка PowerCLI для инфраструктуры отказоустойчивых кластеров хранилищ - VMware PowerCLI Cookbook for vSAN.
На 88 страницах авторы (Jase McCarty и его коллеги), работавшие с PowerCLI/PowerShell для управления инфраструктурой vSAN более 4 лет, рассказывают обо всех аспектах управления хранилищами с помощью сценариев.
Книга дает "рецепты" в следующих сферах:
Конфигурация решения vSAN
Операционные ежедневные задачи
Функции отчетности о текущем состоянии среды
В книге приведено большое количество примеров, причем авторы сначала показывают, как задачу можно выполнить в графическом интерфейсе, а затем разбирают кейс по автоматизации данных действий с помощью PowerCLI.
Кстати, это только первый релиз книги (1.0), со временем она будет дополняться. Скачать VMware PowerCLI Cookbook for vSAN можно по этой ссылке.
Те из вас, кто разрабатывает, дорабатывает и использует сценарии VMware PowerCLI, знает, что время от времени требуется использовать модуль какой-то конкретной версии, который идет в составе PowerCLI определенной версии. Это может быть из-за бага в новом пакете или несовместимости старых скриптов с новыми модулями.
Если вам нужно скачать нужный пакет из PowerShell Gallery, сделать это просто - там есть кнопка Manual Download:
Но есть и возможность напрямую установить модуль из галереи, используя команду:
Install-Module -Name VMware.PowerCLI
Но это команда установит только последнюю версию модуля, а на блоге VMware появилась интересная функция Save-PowerCLI, которая позволяет указать в параметре -RequiredVersion нужную версию и скачать ее с последующей установкой:
Больше пяти лет назад мы писали про проект vCenter Server Simulator 2.0 (VCSIM), который позволял протестировать основные интерфейсы VMware vCenter без необходимости его реального развертывания (а значит и без лицензии). Проблема в том, что он был выпущен для VMware vSphere и vCenter версий 5.5 и с тех пор не обновлялся.
Зато есть аналог старому VCSIM - новый проект govcsim, написанный на языке Go (Golang). Он точно так же умеет предоставлять API-ответы на вызовы к vCenter Server и ESXi.
Несмотря на то, что этот симулятор написан на Go, он позволяет вам работать с vCenter посредством любого языка и интерфейса, умеющего общаться через API (в том числе, PowerShell). То есть, вы можете соединиться через PowerCLI к VCSIM Docker Container и работать с ним как с сервером vCenter.
Сам контейнер nimmis/vcsim можно скачать отсюда. Pull-команда для него:
If ($PSVersionTable.PSVersion.Major -ge 6) {
Test-Connection $Server -TCPPort 443
}
Connect-VIServer -Server $Server -Port 443 -User u -Password p
# Did it work?
Get-VM
# Or Get-VMHost, or Get-Datastore, etc.
Этот код делает следующее:
Запускает docker-контейнер VCSIM локально (если у вас его нет, то он будет загружен).
На Windows-системе получает IP-адрес адаптера DockerNAT.
После запуска контейнера тестирует, что порт 443 отвечает.
Использует модуль VMware.PowerCLI интерфейса PowerShell для соединения с vCenter Simulator.
Симулятор на данный момент поддерживает не все множество API-методов (смотрите документацию). Вот так, например, можно вывести список всех поддерживаемых методов и типов:
$About = Invoke-RestMethod -Uri "https://$($Server):443/about" -Method Get
$About.Methods
$About.Types
Например, вы можете использовать PowerOffVM_Task, PowerOnMultiVM_Task и PowerOnVM_Task. Из PowerCLI попробуйте также протестировать командлеты Stop-VM и Start-VM. Ну а дальше изучайте документацию к библиотеке govmomi.
Давайте для начала разберёмся с терминологией. Что такое роли NSX-менеджера? Роли NSX-менеджера позволяют управлять правами доступа к объектам NSX с помощью присвоения той или иной роли отдельному пользователю или группе. В UI эти настройки находятся в Networking & Security -> System -> Users and Domains.
Недавно компания VMware объявила о выпуске обновленной версии решения VMware PKS 1.3 (Pivotal Container Service), предназначенного для управления гибридными средами Kubernetes в онпремизных и публичных облаках. Напомним, что об анонсах на VMworld Europe 2018, касающихся этого продукта, мы писали вот тут.
Тогда было объявлено о покупке компании Heptio, которую основали создатели Kubernetes. Она предоставляет набор продуктов и профессиональных сервисов для управления контейнерами Kubernetes в онпремизных, публичных и гибридных облачных средах. Помимо управления контейнерами, решения Heptio предоставляют такие сервисы, как оркестрация приложений, поддержка жизненного цикла (развертывание, хэлсчек) и обеспечение доступности (снапшоты, резервное копирование).
Теперь кое-что из этого было добавлено в VMware PKS, который стал поддерживать облачную среду Microsoft Azure. Кроме того, в продукте были улучшены функции контроля сетевого взаимодействия, безопасности и управления.
Давайте посмотрим, что нового появилось в PKS 1.3:
1. Поддержка публичного облака Microsoft Azure.
Ранее PKS поддерживал облачные среды VMware vSphere, Google Cloud Platform и Amazon EC2. Теперь он работает и в Azure:
PKS позволяет самостоятельно развернуть кластеры Kubernetes в облаке (или сразу нескольких облаках) и получить все инструменты для ежедневной эксплуатации решения.
2. Улучшения гибкости и средств настройки сетевой среды и инфраструктуры безопасности.
Теперь сетевые профили кластеров, которые появились еще в версии 1.2, получили еще больше параметров настройки.
Поддержка нескольких Tier 0 маршрутизаторов для лучшей изоляции контейнерных сред. Один экземпляр VMware NSX-T может обслуживать несколько Tier 0 маршрутизаторов, что дает не только функции безопасности, но и возможности настройки отдельных диапазонов IP для каждого роутера и его клиентов.
Маршрутизируемые IP-адреса, назначаемые группам узлов (Pods), что позволяет обеспечить их прозрачную коммуникацию с внешним миром (а также достучаться к ним из внешнего мира). Если необходимо, можно использовать и NAT-схему. Более подробно об этом написано здесь.
Для групп Pods можно перекрыть глобальные настройки диапазона IP-адресов и размера подсети, задав их для отдельных групп. Это дает больше гибкости в плане использования глобального диапазона адресов.
Поддержка больших (large) балансировщиков в дополнение к small и medium. Это увеличивает число предоставляемых сервисов, число групп на бэкенде в расчете на сервис, а также количество транзакций в секунду на сервис.
Лучшая изоляция окружений за счет размещения нескольких VMware PKS Control Planes в рамках одного экземпляра NSX-T. Каждый управляющий объект VMware PKS control plane можно разместить на выделенном маршрутизаторе NSX-T Tier 0. Это позволяет лучше разделить окружения и, например, обновлять тестовую среду независимо от производственной, работая с двумя экземплярами PKS.
3. Улучшенные операции управления.
Здесь произошли следующие улучшения:
Средства резервного копирования и восстановления кластеров Kubernetes. Теперь, помимо бэкапа средств управления Control Planes, появилась возможность бэкапа и stateless-нагрузок в контейнерах средствами тулсета BOSH Backup and Restore (BBR).
Возможность проведения смоук-тестов. С помощью PKS 1.3 возможно создание специализированной тестовой среды, которую можно использовать для проверки апгрейда кластера, чтобы убедиться, что на производственной среде апгрейд пройдет нормально. После окончания теста тестовый кластер удаляется, после чего можно спокойно апгрейдить продакшен.
4. Поддержка Kubernetes 1.12 и другие возможности.
VMware PKS 1.3 поддерживает все стабильные физи релиза Kubernetes 1.12. Со стороны VMware они прошли тесты Cloud Native Computing Foundation (CNCF) Kubernetes conformance tests.
Также в рамках одной группы контейнеры могут иметь общие тома. Это может пригодиться, например, для общей базы данных нескольких приложений в разных контейнерах.
Кроме того, компоненты NSX-T и другие управляющие элементы, такие как VMware vCenter, можно разместить за HTTP proxy, требующим аутентификации. Ну и VMware PKS 1.3 включает решение Harbor 1.7 с новыми возможностями, такими как управление диаграммами Helm, улучшенная поддержка LDAP, репликация образов и миграции базы данных.
Более подробно о VMware PKS 1.3 написано по этой ссылке. Также больше подробностей об обновлении можно узнать тут, а вот тут можно пройти практическую лабораторную работу по решению PKS.
Компания StarWind Software, известная своим лидирующим решением Virtual SAN для создания отказоустойчивых хранилищ для виртуальных машин VMware vSphere и Microsoft Hyper-V, продолжает выпускать полезные бесплатные утилиты. Например, напомним, что ранее мы писали о StarWind Deduplication Analyzer.
На этот раз StarWind выпустила средства для бенчмаркинга RDMA-соединений между серверными системами, которые используются для прямого доступа к памяти между хостами в рамках кластера.
Для тестирования RDMA-соединений есть различные утилиты, но они разработаны для различных операционных систем, и их трудно сопрягать между собой. Также они показывают либо задержки (latency), либо пропускную способность (bandwidth), а rPerf выводит обе этих метрики. Ну и, конечно же, ее можно использовать для Windows и Linux одновременно.
Давайте посмотрим, как это работает. Для тестирования вам понадобятся системы Windows 7 / Windows Server 2012 или более поздние, а если вы хотите использовать Linux - то CentOS 7 или
Ubuntu.
Сетевой адаптер (NIC) должен иметь настроенные механизмы Network Direct Provider v1 и lossless RDMA. Для адаптеров нужны последние версии драйверов, так как стандартный драйвер Windows не поддерживает ND API. Для систем Linux нужны драйвера с поддержкой RDMA и RoCE.
На сайте проекта VMware Labs появилось превью технологии PowerCLI for VMware Cloud on AWS, которая представляет собой расширение фреймворка PowerCLI на публичное облако от Amazon и VMware. Расширение поставляется как отдельный модуль PowerCLI (VMware.VimAutomation.VmcPreview), который интегрируется с остальными модулями.
Все команды модуля сгенерированы автоматически, в данный момент они находятся в разработке, поэтому могут обновляться и изменяться, что нужно учитывать при разработке сценариев. Всего в модуле присутствует 14 высокоуровневых командлетов, таких как Get-Organization или Get-Sddc. Давайте взглянем, как это примерно работает.
Для начала работы вам понадобится PowerCLI 11.0.0 или более старшей версии. Установить модуль можно автоматически из PowerShell Gallery с помощью команды:
Также можно получить объект SDDC, используя Organization ID:
Далее с объектом SDDC можно работать как в привычной среде PowerCLI, например, получить AWS Region, какие зоны Availability Zones используются, информацию об NSX (например, Manager URL), а также vCenter URL:
Скачать VMware vCloud on AWS можно по этой ссылке.
В конце декабря ушедшего года компания VMware выпустила обновление своего консольного фреймворка для управления виртуальной инфраструктурой - PowerCLI 11.1.0. Напомним, что прошлая мажорная версия (PowerCLI 11.0) была выпущена в октябре прошлого года.
Давайте посмотрим, что нового в этом обновлении:
1. Улучшения Site Recovery Manager Module.
Теперь средствами модуля VMware.VimAutomation.SRM для PowerCLI обеспечивается мультиплатформенная поддержка в плане управления инфраструктурой Site Recovery Manager. Этот модуль можно использовать с PowerShell Core на платформах MacOS и Linux. Он стал одним из первых специализированных модулей, сконвертированных на другие платформы.
В модуле Storage (VMware.VimAutomation.Storage) было сделано несколько исправлений ошибок и улучшений. Теперь командлет Get-VsanDisk выводит диск vSAN, где находится Witness Component. Также для командлета Start-SpbmReplicationTestFailover больше не нужен параметр VvolId.
Скачать PowerCLI 11.1 можно по этой ссылке. Напомним, что традиционно PowerCLI обновляется следующей командой:
Здесь мы можем увидеть вот такие цены за хост ESXi с сервисами vSphere/vSAN/NSX в час (на самом деле, это от $7 в час, а цены ниже указаны для новых клиентов в течение 3 первых месяцев):
Если вы подпишете контракт на год, скидка будет 30%, если на 3 года - 50%.
На этой же странице ниже расположен калькулятор стоимости аренды IaaS-инфраструктуры vCloud on AWS, где можно посчитать примерную цену аренды хостов SDDC (2 CPU, 36 ядер, 512 ГБ оперативной памяти, флэш-хранилище NVMe: 3.6 ТБ кэш, плюс 10.7 ТБ сырой емкости для ВМ).
Для четырех хостов ESXi на месяц у меня получилась стоимость 30 тысяч долларов, что как-то слишком дорого:
На данный момент также существует 2 онлайн-сервиса, которые позволяют оценить затраты на IaaS-инфраструктуру VMConAWS с точки зрения стоимости владения за 3 года:
1. Базовый калькулятор стоимости владения: VMware Cloud on AWS and Microsoft Azure: A Hybrid Cloud TCO Comparison.
В левой панели вводите число виртуальных машин (как в облаке, так и на собственной площадке под управлением VMC) и длительность контракта (год, 3 года или по мере использования) и получаете оценку затрат за 3 года в виде совокупной стоимости владения TCO (total cost of ownership), а также стоимость машиночаса. Это все подается еще и в сравнении со стоимостью владения ресурсами публичного облака Microsoft Azure (насчет точности конкурентных расчетов есть определенные сомнения):
2. Расширенный калькулятор стоимости владения: VMware Cloud on AWS Sizer and TCO.
В этом средстве расчета вы уже задаете профили рабочей нагрузки с их назначением, указываете число виртуальных машин с их параметрами (диск/профиль операций ввода-вывода, память, процессор) и получаете расчет совокупной стоимости владения с детальной разбивкой по статьям затрат, а также детальным описанием планируемой IaaS-инфраструктуры:
Согласно калькулятору, 100 виртуальных машин с дефолтными настройками профиля нагрузки за 3 года обойдутся в 400 тысяч долларов.
Кстати, пользователи продукта VMware vRealize Business for Cloud могут в нем провести обследование своей инфраструктуры для оценки затрат на содержание такой же облачной среды, но на стороне vCloud on AWS:
На написание этого поста меня вдохновила достаточно старая, но лично мною обнаруженная совсем недавно статья Романа Гельмана "PowerShell скрипт для автоматической установки ESXi хостов на серверах IBM/Lenovo". Какое-то время назад появилась необходимость автоматизировать процесс развертывания новой инфраструктуры для vSphere для клиента...
Весной 2018 года Selectel запустил услугу резервного копирования для Облака на базе VMware посредством Veeam® Backup&Replication™ (далее VBR). К реализации проекта мы подошли основательно, спланировали и выполнили следующий перечень работ:
Изучение документации и лучших практик по продуктам Veeam
Разработку архитектуры VBR уровня сервис-провайдера
Многие из вас используют фреймворк VMware PowerCLI для автоматизации операций в виртуальной инфраструктуре (см. статьи нашего автора Романа Гельмана). Между тем, не все знают, что PowerCLI - это точно такой же поддерживаемый продукт VMware, как и все остальные, с точки зрения обращений в техническую поддержку. То есть, если вы обнаружили некорректное поведение скрипта PowerCLI и не можете выяснить причину - то имеет смысл открыть Support Ticket.
Но чтобы инженеры VMware получили всю необходимую диагностическую информацию, часто оказывается недостаточно сгенерировать support-бандлы для хоста ESXi или сервера vCenter. Иногда нужно залезть глубже, чтобы получить информацию об API-вызовах, например, с помощью инструментов Fiddler или Wireshare.
Но можно сделать все гораздо проще - есть командлет Get-ErrorReport, который соберет для вас всю необходимую диагностическую информацию об ошибке и добавит ее в zip-пакет для отправки как вложения support-тикета. Давайте вызовем ошибку, к примеру, известную проблему PowerCLI, которая возникает при попытке переместить виртуальную машину с помощью Move-VM в виртуальный сервис vApp:
Move-VM : 11/14/2018 1:12:31 PM Move-VM A specified parameter was not correct:
PlacementSpec.relocateSpec.pool
Чтобы получить support бандл для этой ошибки, нужно использовать командлет, у которого есть следующие параметры:
Destination - директория назначения результирующего бандла.
IncludeServerLogs - нужно ли вытягивать логи с сервера, к которому мы подключены.
ProblemDescription - описание проблемы для технической поддержки.
ProblemScript - участок скрипта, который вызывает ошибку.
Таким образом, давайте попробуем вызвать командлет Get-ErrorReport:
$errorCode = {
$appsvr = Get-VM -Name appsvr02
$vapp = Get-VApp -Name DemovApp
Move-VM -VM $appsvr -Destination $vapp
}
Get-ErrorReport -ProblemScript $errorCode -Destination .\Documents\ -ProblemDescription "Using Move-VM to place a VM into a vApp"
Результатом работы сценария будет саппорт-бандл PowerCLI, лежащий в заданной папке:
Если заглянуть внутрь этого zip-пакета, то можно увидеть там следующие файлы:
PowerCLI-Main-Log.svclog
Powershell-Debug-Stream.txt
Powershell-Error-Stream.txt
Powershell-Info-Stream.txt
Powershell-Verbose-Stream.txt
Powershell-Warning-Stream.txt
Это все диагностические файлы, полный комплект которых позволит техподдержке VMware помочь решить вам вашу проблему с PowerCLI.
Кстати, файл с расширением *.svclog можно открыть с помощью инструмента Microsoft Service Stack Trace Viewer. В данном случае мы там увидим, что API-сервис вернул ошибку internal server error с кодом 500:
Для более детального исследования надо уже смотреть внутрь остальных файлов - это работа технической поддержки VMware, куда вы можете оформить запрос, используя материалы вот по этой ссылке.
Еще 8 лет назад мы писали о кэшировании в решении StarWind Virtual SAN, которое является лучшим на сегодняшний день программным средством создания отказоустойчивых хранилищ для виртуальных машин. У кэширования на запись write-back есть недостаток - возможность потери данных в случае отключения электропитания. Поэтому сегодня мы расскажем о том, что такое новый Log-structured Write Cache (LWC), и для чего он нужен...